package com.lysj.admin.master.common.web;

/**
 * @author Created by zk on 2019-12-01 22:32
 * @description
 */
public class RespUtil {
    /**
     * 创建一个成功(仅消息)的对象
     */
    public static Resp success(String msg) {
        return new Resp<>(Resp.ResStatus.SUCCESS.getCode(), msg, null);
    }

    /**
     * 创建一个失败(错误码+消息)的对象
     */
    public static Resp error(Resp.ResStatus status, String msg) {
        return new Resp<>(status.getCode(), msg, null);
    }

    /**
     * 创建一个成功(消息+数据)的对象
     */
    public static <T> Resp success(T data, String msg) {
        return new Resp<>(Resp.ResStatus.SUCCESS.getCode(), msg, data);
    }

    /**
     * 创建一个成功(仅数据)的对象,消息默认为'success'
     */
    public static <T> Resp success(T data) {
        return new Resp<>(Resp.ResStatus.SUCCESS.getCode(), "success", data);
    }

    /**
     * 创建一个通用(结果码 + 消息 + 数据)的对象
     */
    public static <T> Resp common(Resp.ResStatus status, String msg, T data) {
        return new Resp<>(status.getCode(), msg, data);
    }

    public static Resp.ResStatus getStatusByCode(Integer code) {
        if (ParamUtil.isBlank(code)) {
            return Resp.ResStatus.INNER_ERROR;
        }
        for (Resp.ResStatus status : Resp.ResStatus.values()) {
            if (code.equals(status.getCode())) {
                return status;
            }
        }
        return Resp.ResStatus.INNER_ERROR;
    }
}
